UCF STIG Viewer Logo

SQL Server must uniquely identify and authenticate organizational users (or processes acting on behalf of organizational users).


Overview

Finding ID Version Rule ID IA Controls Severity
V-40924 SQL2-00-018400 SV-53278r1_rule Medium
Description
To ensure accountability and prevent unauthorized SQL Server access, organizational users shall be identified and authenticated. Organizational users include organizational employees or individuals the organization deems to have equivalent status of employees (e.g., contractors, guest researchers, individuals from allied nations). Users (and any processes acting on behalf of users) are uniquely identified and authenticated for all accesses other than those accesses explicitly identified and documented by the organization, which outlines specific user actions that can be performed on SQL Server without identification or authentication.
STIG Date
Microsoft SQL Server 2012 Database Instance Security Technical Implementation Guide 2014-01-17

Details

Check Text ( C-47579r2_chk )
Review SQL Server settings to determine whether organizational users are uniquely identified and authenticated when logging onto the system. This does not include when SQL Server has a guest or public account that is providing access to publicly available information.

Since SQL Server requires unique user accounts, the only way to circumvent this requirement is when shared or group SQL Server user accounts are used. Check the list of SQL Server users for shared or group accounts by running the following query:
SELECT name AS 'Account Name'
, CASE is_disabled WHEN 1 THEN 'Yes' ELSE '' END AS 'Is Disabled'
, create_date AS 'Account Create Date'
, LOGINPROPERTY(name, 'PasswordLastSetTime') AS 'Password Last Set on'
FROM sys.server_principals
WHERE NOT TYPE IN ('C', 'R', 'U') -- ('C', 'G', 'K', 'R', 'S', 'U')
AND NOT name IN ('##MS_PolicyEventProcessingLogin##', '##MS_PolicyTsqlExecutionLogin##')
AND sid <> CONVERT(VARBINARY(85), 0x01) -- no 'sa' account
ORDER BY name

If any SQL Server user accounts are identified as shared or group accounts, this is a finding.
Fix Text (F-46206r1_fix)
Remove shared or group accounts by running the following script:
DROP LOGIN <'account name'> -- Removes user from system